﻿using ORS.OrderRobot.ServiceContracts.Dtos;
namespace ORS.OrderRobot.ServiceContracts
{
    /// <summary>
    /// 账号服务接口
    /// </summary>
	public interface IAccountService: IAppService
    {
        /// <summary>
        /// 更新用户信息（本地不存在账号信息时自动创建，自动更新三方平台的用户信息）
        /// </summary>
        /// <returns></returns>
        Task CreateUpdateAsync(AccountInput input);
        /// <summary>
        /// 批量设置账号的启停状态
        /// </summary>
        /// <returns></returns>
        Task SetActiveStatusAsync(AccountStatusInput input);
        /// <summary>
        ///  获取所有账号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<AccountDto>> GetAllAsync(GetAllInput input);
        /// <summary>
        /// 获取账号基本信息
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        Task<(string email,string password)?> GetAccount(string email);
        /// <summary>
        /// 取得账号未过期的最新一张登机牌
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        Task<AccountBoardingDto?> GetBoardingAsync(string email);
        /// <summary>
        /// 同步用户资料到远程
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task SyncProfileToThridPart(AccountBasicInput input);
    }
}

